route.ts 838 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import { type NextRequest, NextResponse } from 'next/server'
  2. import { Octokit } from '@octokit/core'
  3. import { RequestError } from '@octokit/request-error'
  4. import { GITHUB_ACCESS_TOKEN } from '@/config'
  5. type Params = {
  6. owner: string,
  7. repo: string,
  8. }
  9. const octokit = new Octokit({
  10. auth: GITHUB_ACCESS_TOKEN,
  11. })
  12. export async function GET(
  13. request: NextRequest,
  14. { params }: { params: Promise<Params> },
  15. ) {
  16. const { owner, repo } = (await params)
  17. try {
  18. const releasesRes = await octokit.request('GET /repos/{owner}/{repo}/releases', {
  19. owner,
  20. repo,
  21. headers: {
  22. 'X-GitHub-Api-Version': '2022-11-28',
  23. },
  24. })
  25. return NextResponse.json(releasesRes)
  26. }
  27. catch (error) {
  28. if (error instanceof RequestError)
  29. return NextResponse.json(error.response)
  30. else
  31. throw error
  32. }
  33. }